﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Data.SqlClient;
using System.Collections.Specialized;
using LHS.Core.TableInfo;
using MS.Core.Constants.Objects;

namespace LHS.Win
{
    public partial class frmEnterStock : Form
    {
        LHS.Core.Clinical.ClinicalController objController = new LHS.Core.Clinical.ClinicalController();
        // Methods
        public frmEnterStock()
        {
            this.InitializeComponent();
            this.dt = new DataTable("ImportMedicineList");
            this.dt.Columns.Add("STT");
            this.dt.Columns.Add("Tên Thuốc");
            this.dt.Columns.Add("SL Nhập");
            this.dt.Columns.Add("ĐV Tính");
            this.dt.Columns.Add("Đổi Đơn Vị");
            this.dt.Columns.Add("ĐV Chuẩn");
            this.dt.Columns.Add("Cũ/Mới");
            this.dt.Columns.Add("ISN");
            //phan moi them se khong hien thi len luoi, nhung khi chon vao luoi se thay do vao du lieu cap nhat
            this.dt.Columns.Add(InfoMedicine.MIMMEDICINEORIGINALNAME); //ten goc cua thuoc
            this.dt.Columns.Add(InfoMedicine.MEXQUANTITYPERUNIT); //so luong sử dụng ?/ dvi
            this.dt.Columns.Add(InfoMedicine.MEXPRODUCTIONPERUNIT); //dvi 1 lan dung (viên, ống,chai,...) ---> lưu là kiểu int
            this.dt.Columns.Add(InfoMedicine.MEXTAKEPERDAY); //-- ngay?lan
            this.dt.Columns.Add(InfoMedicine.MEXQUANTITYPERDAY); //--so luong?/ lan
            this.dt.Columns.Add(InfoMedicine.MEXUSAGEPERDAY); //--cử uống
            this.dt.Columns.Add(InfoMedicine.MEXUSAGEUNIT); //--đơn vị của cách dùng
            this.dt.Columns.Add(InfoMedicine.MEXUSAGE); //--cach dùng
            this.dt.Columns.Add(InfoMedicine.MEXNOTE); //-- luu y

            //phan moi them 20090602
            this.dt.Columns.Add(InfoMedicine.MEXMOREDETAILS); //-- thông tin thêm

            this.ds = new DataSet();
        }

        private void btAdd_Click(object sender, EventArgs e)
        {
            if (this.check())
            {
                this.txtDViChuan_Leave(sender, e);
                DataRow row = this.dt.NewRow();
                ArrayList list = new ArrayList();
                this.count = this.dt.Rows.Count + 1;
                list.Add(this.count.ToString());
                if (this.txtNewMedicine.Text != "")
                {
                    list.Add(this.txtNewMedicine.Text);
                }
                if (this.txtNewMedicine.Text == "")
                {
                    list.Add(this.cboSick.SelectedItem.ToString());
                }
                list.Add(this.txtAmount.Text);
                list.Add(this.txtDonVi.Text);
                list.Add(this.txtDViChuan.Text);
                list.Add(this.cboMucChuan.SelectedItem.ToString());
                if (this.txtNewMedicine.Text != "")
                {
                    list.Add("0");
                    list.Add("0");
                }
                if (this.txtNewMedicine.Text == "")
                {
                    list.Add("1");
                    list.Add(this.txtISN.Text);
                }

                row[0] = list[0];
                row[1] = list[1];
                row[2] = list[2];
                row[3] = list[3];
                row[4] = list[4];
                row[5] = list[5];
                row[6] = list[6];
                row[7] = list[7];

                //phan moi them

                list.Add(this.txtOriginalName.Text); //8
                list.Add(this.tbSoLuong.Text);//9
                list.Add(this.cboDonVi.SelectedItem.ToString());//10
                list.Add(this.tbNgayUong.Text);//11
                list.Add(this.tbLanUong.Text);//12
                list.Add(this.txtDVMin.Text);//13
                list.Add(this.cboCuUong.Text);//14
                list.Add(this.cboCachSD.SelectedItem.ToString());//15
                list.Add(this.cboLuuY.Text);//16

                row[InfoMedicine.MIMMEDICINEORIGINALNAME] = list[8];
                row[InfoMedicine.MEXQUANTITYPERUNIT] = list[9]; //"Số Lượng"
                row[InfoMedicine.MEXPRODUCTIONPERUNIT] = list[10];//"Đơn vị"
                row[InfoMedicine.MEXTAKEPERDAY] = list[11];//"Ngày SD/ Lần"
                row[InfoMedicine.MEXQUANTITYPERDAY] = list[12];//"Lần"
                row[InfoMedicine.MEXUSAGEUNIT] = list[13];//"Đơn Vị Dùng"
                row[InfoMedicine.MEXUSAGEPERDAY] = list[14];//"Cử"
                row[InfoMedicine.MEXUSAGE] = list[15];//"Cách SD"
                row[InfoMedicine.MEXNOTE] = list[16];//"Lưu ý"
                //end phan moi them

                //phan moi them 20090602
                list.Add(this.txtMoreDetails.text);//17
                row[InfoMedicine.MEXMOREDETAILS] = list[17];//"more detail"
                //end phan moi them 20090602

                this.dt.Rows.Add(row);
                this.loadDataSet();
                this.txtNewMedicine.Text = "";
                this.cboMucChuan.SelectedIndex = 0;
                this.txtSumAmount.Text = "";
                this.txtAmount.Text = "0";
                this.txtDonVi.Text = "";
                this.txtDViChuan.Text = "1";
                this.cboSick.SelectedIndex = 0;

                //phan moi thêm
                this.txtOriginalName.Text = "";
                this.cboCachSD.SelectedIndex = 0;
                this.tbSoLuong.Text = "";
                this.txtDVMin.Text = "";
                this.tbLanUong.Text = "";
                this.tbNgayUong.Text = "";
                this.cboLuuY.Text = "";
                this.cboDonVi.SelectedIndex = 0;
                this.cboCuUong.Text = "";
                cboCuUong.Items.Clear();
                //phan moi thêm 20090602
                this.txtMoreDetails.text = "";
                //-end phan moi thêm
            }
        }

        private void btSave_Click(object sender, EventArgs e)
        {
            if ((this.dataGrid1.DataSource != null) && (this.ds.Tables["ImportMedicineList"].Rows.Count != 0))
            {
                DataRow dr;
                for (int i = 0; i < this.ds.Tables["ImportMedicineList"].Rows.Count; i++)
                {
                    dr = this.ds.Tables["ImportMedicineList"].Rows[i];
                    string str = dr[1].ToString();
                    string str2 = dr[2].ToString();
                    string str3 = dr[3].ToString();
                    string str4 = dr[4].ToString();
                    string str5 = dr[5].ToString();
                    string str6 = dr["ISN"].ToString();
                    switch (str5)
                    {
                        case "viên":
                            str5 = "0";
                            break;

                        case "ống":
                            str5 = "1";
                            break;

                        case "chai":
                            str5 = "2";
                            break;

                        case "gói":
                            str5 = "3";
                            break;

                        case "tuýp":
                            str5 = "4";
                            break;
                    }
                    string strProductPerUnit = string.Empty;
                    switch (dr[InfoMedicine.MEXPRODUCTIONPERUNIT].ToString())
                    {
                        case "viên":
                            strProductPerUnit = "0";
                            break;

                        case "ống":
                            strProductPerUnit = "1";
                            break;

                        case "chai":
                            strProductPerUnit = "2";
                            break;

                        case "gói":
                            strProductPerUnit = "3";
                            break;

                        case "tuýp":
                            strProductPerUnit = "4";
                            break;
                    }
                    ListDictionary param = new ListDictionary();
                    param.Add(InfoMedicineImport.MIMID, str6);
                    param.Add(InfoMedicineImport.MIMMEDICINENAME, str);
                    param.Add(InfoMedicineImport.MIMQUANTITY, str2);
                    param.Add(InfoMedicineImport.MIMPRODUCTIONUNIT, str3);
                    param.Add(InfoMedicineImport.MIMQUANTITYPERUNIT, str4);
                    param.Add(InfoMedicineImport.MIMPRODUCTIONPERUNIT, str5);

                    //phan moi them
                    param.Add(InfoMedicine.MIMMEDICINEORIGINALNAME, dr[InfoMedicine.MIMMEDICINEORIGINALNAME]); //ten goc cua thuoc
                    param.Add(InfoMedicine.MEXQUANTITYPERUNIT, dr[InfoMedicine.MEXQUANTITYPERUNIT]); //so luong sử dụng ?/ dvi
                    param.Add(InfoMedicine.MEXPRODUCTIONPERUNIT, strProductPerUnit); //dvi 1 lan dung (viên, ống,chai,...) ---> lưu là kiểu int
                    param.Add(InfoMedicine.MEXTAKEPERDAY, dr[InfoMedicine.MEXTAKEPERDAY]); //-- ngay?lan
                    param.Add(InfoMedicine.MEXQUANTITYPERDAY, dr[InfoMedicine.MEXQUANTITYPERDAY]); //--so luong?/ lan
                    param.Add(InfoMedicine.MEXUSAGEPERDAY, dr[InfoMedicine.MEXUSAGEPERDAY]); //--cử uống
                    param.Add(InfoMedicine.MEXUSAGEUNIT, dr[InfoMedicine.MEXUSAGEUNIT]); //--đơn vị của cách dùng
                    param.Add(InfoMedicine.MEXUSAGE, dr[InfoMedicine.MEXUSAGE]); //--cach dùng
                    param.Add(InfoMedicine.MEXNOTE, dr[InfoMedicine.MEXNOTE]); //-- luu y
                    //phan moi them 20090602
                    param.Add(InfoMedicine.MEXMOREDETAILS, dr[InfoMedicine.MEXMOREDETAILS]); //-- more details
                    //end moi them

                    try
                    {
                        objController.Exec_StoreProc("sp_MedicineImport_Insert", param);

                    }
                    catch (Exception ex)
                    {
                        Class.ShowException(ex);
                    }
                }

                MessageBox.Show("Thuốc đã Nhập Kho", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                //this.btThoat_Click(sender, e);
                //reset lai toan bo phan vua nhap //edit thaoht
                this.dt.Rows.Clear();
                cboSick.Items.Clear();
                cboMucChuan.Items.Clear();
                dataGrid1.TableStyles.Clear();
                dataGrid1.DataSource = null;
                txtAmount.Text = "";
                txtDonVi.Text = "";
                txtDViChuan.Text = "1";
                txtSumAmount.Text = "";

                //phan moi thêm
                this.txtOriginalName.Text = "";
                this.cboCachSD.SelectedIndex = 0;
                this.tbSoLuong.Text = "";
                this.txtDVMin.Text = "";
                this.tbLanUong.Text = "";
                this.tbNgayUong.Text = "";
                this.cboLuuY.Text = "";
                this.cboDonVi.SelectedIndex = 0;
                this.cboCuUong.Text = "";
                cboCuUong.Items.Clear();
                cboDonVi.Items.Clear();
                //phan moi them 20090602
                this.txtMoreDetails.text = "";
                //-end phan moi thêm

                frmEnterStock_Load(sender, e);
            }
        }

        private void btThoat_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void btUpdate_Click(object sender, EventArgs e)
        {
            if ((this.dataGrid1.DataSource != null) && (this.ds.Tables["ImportMedicineList"].Rows.Count != 0))
            {
                if (this.txtAmount.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn tên thuốc từ danh sách nhập", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
                else if (this.check())
                {
                    DataRow dr;
                    for (int i = 0; i < this.ds.Tables["ImportMedicineList"].Rows.Count; i++)
                    {
                        dr = this.ds.Tables["ImportMedicineList"].Rows[i];
                        if (dr["STT"].ToString() == this.txtSTT.Text)
                        {
                            if (this.txtNewMedicine.Text != "")
                            {
                                dr[1] = this.txtNewMedicine.Text;
                                dr["ISN"] = 0;
                            }
                            else
                            {
                                dr[1] = this.cboSick.SelectedItem.ToString();
                                dr["ISN"] = this.cboISN.SelectedValue.ToString();
                            }
                            dr[2] = this.txtAmount.Text;
                            dr[3] = this.txtDonVi.Text;
                            dr[4] = this.txtDViChuan.Text;
                            dr[5] = this.cboMucChuan.SelectedItem.ToString();

                            //phan moi them
                            dr[InfoMedicine.MIMMEDICINEORIGINALNAME] = this.txtOriginalName.Text;
                            dr[InfoMedicine.MEXQUANTITYPERUNIT] = this.tbSoLuong.Text;
                            dr[InfoMedicine.MEXPRODUCTIONPERUNIT] = cboDonVi.SelectedItem.ToString();
                            dr[InfoMedicine.MEXTAKEPERDAY] = this.tbNgayUong.Text;
                            dr[InfoMedicine.MEXQUANTITYPERDAY] = this.tbLanUong.Text;
                            dr[InfoMedicine.MEXUSAGEPERDAY] = this.cboCuUong.Text;
                            dr[InfoMedicine.MEXUSAGEUNIT] = this.txtDVMin.Text;
                            dr[InfoMedicine.MEXUSAGE] = this.cboCachSD.SelectedItem.ToString();
                            dr[InfoMedicine.MEXNOTE] = this.cboLuuY.Text;
                            //phan moi them 20090602
                            dr[InfoMedicine.MEXMOREDETAILS] = this.txtMoreDetails.text;
                            //--end phan moi them
                            break;
                        }
                    }
                    this.txtNewMedicine.Text = "";
                    this.cboMucChuan.SelectedIndex = 0;
                    this.txtSumAmount.Text = "";
                    this.txtAmount.Text = "0";
                    this.txtDonVi.Text = "";
                    this.txtDViChuan.Text = "1";
                    this.cboSick.SelectedIndex = 0;

                    //phan moi them
                    this.txtOriginalName.Text = "";
                    this.cboCachSD.SelectedIndex = 0;
                    this.tbSoLuong.Text = "";
                    this.txtDVMin.Text = "";
                    this.tbLanUong.Text = "";
                    this.tbNgayUong.Text = "";
                    this.cboLuuY.Text = "";
                    this.cboDonVi.SelectedIndex = 0;
                    //phan moi them 20090602
                    this.txtMoreDetails.text = "";
                    //-end phan moi them
                }
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            if ((this.dataGrid1.DataSource != null) && (this.ds.Tables["ImportMedicineList"].Rows.Count != 0))
            {
                if (this.txtAmount.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn tên thuốc từ danh sách nhập", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
                else
                {
                    this.ds.Tables["ImportMedicineList"].Rows[this.dataGrid1.CurrentRowIndex].Delete();
                    for (int i = 0; i < this.ds.Tables["ImportMedicineList"].Rows.Count; i++)
                    {
                        if (this.ds.Tables["ImportMedicineList"].Rows.Count == 0)
                        {
                            this.dataGrid1.DataSource = null;
                            return;
                        }
                        this.ds.Tables["ImportMedicineList"].Rows[i]["STT"] = i + 1;
                    }
                    this.txtNewMedicine.Text = "";
                    this.cboMucChuan.SelectedIndex = 0;
                    this.txtSumAmount.Text = "";
                    this.txtAmount.Text = "0";
                    this.txtDonVi.Text = "";
                    this.txtDViChuan.Text = "1";
                    this.cboSick.SelectedIndex = 0;

                    //phan moi thêm
                    this.txtOriginalName.Text = "";
                    this.cboCachSD.SelectedIndex = 0;
                    this.tbSoLuong.Text = "";
                    this.txtDVMin.Text = "";
                    this.tbLanUong.Text = "";
                    this.tbNgayUong.Text = "";
                    this.cboLuuY.Text = "";
                    this.cboDonVi.SelectedIndex = 0;
                    cboCuUong.Text = "";
                    cboCuUong.Items.Clear();
                    //phan moi them 20090602
                    this.txtMoreDetails.text = "";
                    //-end phan moi thêm
                }
            }
        }

        private void cboMucChuan_SelectedIndexChanged(object sender, EventArgs e)
        {
            if ((this.txtDViChuan.Text.Trim() == "1") && (this.cboMucChuan.SelectedItem.ToString() != "-Chọn-"))
            {
                this.txtDonVi.Text = this.cboMucChuan.SelectedItem.ToString();
            }
        }

        private void cboSick_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.cboSick.SelectedItem.ToString() != "--------Chọn-------")
            {
                this.txtNewMedicine.Enabled = false;
                this.txtNewMedicine.Text = "";
                this.cboISN.SelectedIndex = this.cboSick.SelectedIndex - 1;

                ArrayList arrColumn = new ArrayList();
                arrColumn.Add(InfoMedicineImport.MIMPRODUCTIONPERUNIT);
                arrColumn.Add(InfoMedicineStock.MESQUANTITYINSTOCK);

                List<ExpressionObject> param = new List<ExpressionObject>();
                param.Add(new ExpressionObject(InfoMedicineImport.MIMID, this.cboISN.SelectedValue.ToString()));
                DataTable dtMedicineStock = objController.GetData("vw_MedicineStock", arrColumn, param);
                if (dtMedicineStock != null && dtMedicineStock.Rows.Count > 0)
                {
                    switch (dtMedicineStock.Rows[0][0].ToString())
                    {
                        case "0":
                            this.cboMucChuan.SelectedItem = "viên";
                            break;

                        case "1":
                            this.cboMucChuan.SelectedItem = "ống";
                            break;

                        case "2":
                            this.cboMucChuan.SelectedItem = "chai";
                            break;

                        case "3":
                            this.cboMucChuan.SelectedItem = "gói";
                            break;

                        case "4":
                            this.cboMucChuan.SelectedItem = "tuýp";
                            break;
                    }
                    this.txtSoLuongTonKho.Enabled = true;
                    this.txtSoLuongTonKho.Text = dtMedicineStock.Rows[0][1].ToString() + " " + this.cboMucChuan.SelectedItem.ToString();
                    this.txtISN.Text = this.cboISN.SelectedValue.ToString();
                    this.cboMucChuan.Enabled = false;

                    //phan moi them
                    this.txtSumAmount.Text = "";
                    this.txtAmount.Text = "0";
                    this.txtDonVi.Text = "";
                    this.txtDViChuan.Text = "1";

                    this.txtOriginalName.Text = "";
                    this.cboCachSD.SelectedIndex = 0;
                    this.tbSoLuong.Text = "";
                    this.txtDVMin.Text = "";
                    this.tbLanUong.Text = "";
                    this.tbNgayUong.Text = "";
                    this.cboLuuY.Text = "";
                    this.cboDonVi.SelectedIndex = 0;
                    this.cboCuUong.Text = "";
                    cboCuUong.Items.Clear();
                    //phan moi them 20090602
                    this.txtMoreDetails.text = "";

                    ArrayList arrColumnMedImport = new ArrayList();
                    arrColumnMedImport.Add(InfoMedicine.MIMMEDICINEORIGINALNAME);
                    arrColumnMedImport.Add(InfoMedicine.MEXQUANTITYPERUNIT);
                    arrColumnMedImport.Add(InfoMedicine.MEXPRODUCTIONPERUNIT);
                    arrColumnMedImport.Add(InfoMedicine.MEXTAKEPERDAY);
                    arrColumnMedImport.Add(InfoMedicine.MEXQUANTITYPERDAY);
                    arrColumnMedImport.Add(InfoMedicine.MEXUSAGEPERDAY);
                    arrColumnMedImport.Add(InfoMedicine.MEXUSAGEUNIT);
                    arrColumnMedImport.Add(InfoMedicine.MEXUSAGE);
                    arrColumnMedImport.Add(InfoMedicine.MEXNOTE);
                    //phan moi them 20090602
                    arrColumnMedImport.Add(InfoMedicine.MEXMOREDETAILS);
                    param.Clear();
                    param.Add(new ExpressionObject(InfoMedicine.MEDNAME, cboSick.SelectedItem.ToString()));
                    DataTable dtMedImport = objController.GetData(InfoMedicine.TABLENAME, arrColumnMedImport, param);
                    DataRow drMedImport = (dtMedImport != null && dtMedImport.Rows.Count > 0) ? dtMedImport.Rows[0] : null;
                    if (drMedImport != null)
                    {
                        this.txtOriginalName.Text = drMedImport[InfoMedicine.MIMMEDICINEORIGINALNAME].ToString();
                        this.tbSoLuong.Text = drMedImport[InfoMedicine.MEXQUANTITYPERUNIT].ToString();

                        switch (drMedImport[InfoMedicine.MEXPRODUCTIONPERUNIT].ToString())
                        {
                            case "0":
                                cboDonVi.SelectedItem = "viên";
                                break;
                            case "1":
                                cboDonVi.SelectedItem = "ống";
                                break;

                            case "2":
                                cboDonVi.SelectedItem = "chai";
                                break;

                            case "3":
                                cboDonVi.SelectedItem = "gói";
                                break;

                            case "4":
                                cboDonVi.SelectedItem = "tuýp";
                                break;
                        }

                        this.tbNgayUong.Text = drMedImport[InfoMedicine.MEXTAKEPERDAY].ToString();
                        this.tbLanUong.Text = drMedImport[InfoMedicine.MEXQUANTITYPERDAY].ToString();
                        tbNgayUong_Leave(sender, e);
                        this.cboCuUong.Text = drMedImport[InfoMedicine.MEXUSAGEPERDAY].ToString();
                        this.txtDVMin.Text = drMedImport[InfoMedicine.MEXUSAGEUNIT].ToString();
                        this.cboCachSD.SelectedItem = drMedImport[InfoMedicine.MEXUSAGE].ToString();
                        this.cboLuuY.Text = drMedImport[InfoMedicine.MEXNOTE].ToString();
                        //phan moi them 20090602
                        this.txtMoreDetails.text = drMedImport[InfoMedicine.MEXMOREDETAILS].ToString();
                    }
                    else
                    {
                        txtDVMin.Text = cboMucChuan.SelectedItem.ToString();
                        cboDonVi.SelectedItem = cboMucChuan.SelectedItem;
                    }
                    //end phan moi them
                }
            }
            else
            {
                this.txtSoLuongTonKho.Text = "";
                this.txtSoLuongTonKho.Enabled = false;
                this.txtNewMedicine.Enabled = true;
                this.txtISN.Text = "0";
                this.cboMucChuan.Enabled = true;

                //phan them moi
                this.txtOriginalName.Text = "";
                this.cboCachSD.SelectedIndex = 0;
                this.tbSoLuong.Text = "";
                this.txtDVMin.Text = "";
                this.tbLanUong.Text = "";
                this.tbNgayUong.Text = "";
                this.cboLuuY.Text = "";
                this.cboDonVi.SelectedIndex = 0;
                this.cboCuUong.Text = "";
                cboCuUong.Items.Clear();
                //phan moi them 20090602
                this.txtMoreDetails.text = "";
                //end phan them moi
            }
        }

        public bool check()
        {
            if ((this.cboSick.Text == "") && (this.txtNewMedicine.Text == ""))
            {
                MessageBox.Show("Vui lòng chọn tên thuốc hoặc nhập tên thuốc mới", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if ((this.cboSick.SelectedItem.ToString() == "--------Chọn-------") && (this.txtNewMedicine.Text == ""))
            {
                MessageBox.Show("Vui lòng chọn tên thuốc hoặc nhập tên thuốc mới", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (this.txtAmount.Text == "")
            {
                MessageBox.Show("Vui lòng nhập số lượng", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (this.txtDonVi.Text == "")
            {
                MessageBox.Show("Vui lòng nhập đơn vị tính", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (this.txtDViChuan.Text == "")
            {
                MessageBox.Show("Vui lòng nhập số lượng / đơn vị chuẩn ", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (this.cboMucChuan.SelectedItem.ToString() == "-Chọn-")
            {
                MessageBox.Show("Vui lòng chọn đơn vị chuẩn ", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (!this.IsNo(this.txtAmount.Text))
            {
                MessageBox.Show("Vui lòng nhập kiểu số cho số lượng", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            if (!this.IsNo(this.txtDViChuan.Text))
            {
                MessageBox.Show("Vui lòng nhập kiểu số cho số 1 đơn vị", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                return false;
            }
            return true;
        }

        private void dataGrid1_MouseUp(object sender, MouseEventArgs e)
        {
            if ((this.dataGrid1.DataSource != null) && ((e.Button == MouseButtons.Left) && (this.dataGrid1.HitTest(e.X, e.Y).Type == DataGrid.HitTestType.RowHeader)))
            {
                DataRow dr = this.ds.Tables["ImportMedicineList"].Rows[this.dataGrid1.CurrentRowIndex];
                if (dr["Cũ/Mới"].ToString() == "0")
                {
                    this.txtNewMedicine.Text = dr["Tên Thuốc"].ToString();
                    this.txtISN.Text = "0";
                }
                else
                {
                    this.cboSick.SelectedItem = dr["Tên Thuốc"].ToString();
                    this.txtISN.Text = dr["ISN"].ToString();
                }

                this.cboMucChuan.SelectedItem = dr["ĐV Chuẩn"].ToString();
                this.txtAmount.Text = dr["SL Nhập"].ToString();
                this.txtDonVi.Text = dr["ĐV Tính"].ToString();
                this.txtDViChuan.Text = dr["Đổi Đơn Vị"].ToString();
                this.txtSTT.Text = dr["STT"].ToString();
               
                this.txtDViChuan_Leave(sender, e);

                //phan moi them
                this.txtOriginalName.Text = dr[InfoMedicine.MIMMEDICINEORIGINALNAME].ToString();
                this.tbSoLuong.Text = dr[InfoMedicine.MEXQUANTITYPERUNIT].ToString();
                cboDonVi.SelectedItem = dr[InfoMedicine.MEXPRODUCTIONPERUNIT].ToString(); // do datagrid da parse roi 

                this.tbNgayUong.Text = dr[InfoMedicine.MEXTAKEPERDAY].ToString();
                this.tbLanUong.Text = dr[InfoMedicine.MEXQUANTITYPERDAY].ToString();
                tbNgayUong_Leave(sender,e);
                this.cboCuUong.Text = dr[InfoMedicine.MEXUSAGEPERDAY].ToString();
                this.txtDVMin.Text = dr[InfoMedicine.MEXUSAGEUNIT].ToString();
                this.cboCachSD.SelectedItem = dr[InfoMedicine.MEXUSAGE].ToString();
                this.cboLuuY.Text = dr[InfoMedicine.MEXNOTE].ToString();
                //phan moi them 20090602
                this.txtMoreDetails.text = dr[InfoMedicine.MEXMOREDETAILS].ToString();
                //end phan moi them
            }
        }

        private void frmEnterStock_Load(object sender, EventArgs e)
        {
            #region Load cbo
            this.cboMucChuan.Items.Clear();
            this.cboMucChuan.Items.Add("-Chọn-");
            this.cboMucChuan.Items.Add("viên");
            this.cboMucChuan.Items.Add("ống");
            this.cboMucChuan.Items.Add("chai");
            this.cboMucChuan.Items.Add("gói");
            this.cboMucChuan.Items.Add("tuýp");
            this.cboMucChuan.SelectedIndex = 0;

            this.cboCachSD.Items.Clear();
            this.cboCachSD.Items.Add("-Chọn-");
            this.cboCachSD.Items.Add("uống");
            this.cboCachSD.Items.Add("xịt");
            this.cboCachSD.Items.Add("nhỏ tai");
            this.cboCachSD.Items.Add("bôi");
            this.cboCachSD.Items.Add("rửa mũi");
            this.cboCachSD.Items.Add("súc họng");
            this.cboCachSD.Items.Add("chích");
            this.cboCachSD.SelectedIndex = 0;

            this.cboDonVi.Items.Clear();
            this.cboDonVi.Items.Add("-Chọn-");
            this.cboDonVi.Items.Add("viên");
            this.cboDonVi.Items.Add("ống");
            this.cboDonVi.Items.Add("chai");
            this.cboDonVi.Items.Add("gói");
            this.cboDonVi.Items.Add("tuýp");
            this.cboDonVi.SelectedIndex = 0;

            this.cboLuuY.Items.Clear();
            this.cboLuuY.Items.Add("Uống trước khi ăn");
            this.cboLuuY.Items.Add("Uống sau khi ăn");
            this.cboLuuY.Items.Add("Uống trước khi ngủ 30 phút");
            this.cboLuuY.Items.Add("Xịt sau khi rửa mũi");
            this.cboLuuY.Items.Add("Thoa lên vết thương");
            this.cboLuuY.Items.Add("Thoa lên sẹo");
            #endregion

            ListDictionary orderby = new ListDictionary();
            orderby.Add(InfoMedicineStock.MESMEDICINENAME, "asc");
            DataTable dtMedicineStock = objController.GetData("vw_MedicineStock", true, null, null, orderby);
            dtMedicineStock.TableName = InfoMedicineImport.TABLENAME;

            cboSick.Items.Clear();
            this.cboSick.Items.Add("--------Chọn-------");
            if (dtMedicineStock != null && dtMedicineStock.Rows.Count > 0)
            {
                for (int i = 0; i < dtMedicineStock.Rows.Count; i++)
                {
                    this.cboSick.Items.Add(dtMedicineStock.Rows[i][InfoMedicineStock.MESMEDICINENAME].ToString());
                }
                this.cboSick.SelectedIndex = 0;
                this.cboISN.DataSource = dtMedicineStock;
                this.cboISN.DisplayMember = InfoMedicineStock.MESMEDICINENAME;
                this.cboISN.ValueMember = InfoMedicineImport.MIMID;
            }
        }

        private void ID_Validate(object sender, KeyPressEventArgs e)
        {
            if ((!char.IsNumber(e.KeyChar) && (e.KeyChar != '\b')) && (e.KeyChar != '\r'))
            {
                e.Handled = true;
            }
        }
        private bool IsNo(string Number)
        {
            try
            {
                long.Parse(Number);
                return true;
            }
            catch
            {
                return false;
            }
        }

        public bool IsNumber(string text)
        {
            try
            {
                Convert.ToInt64(text);
                return true;
            }
            catch
            {
                return false;
            }
        }

        private void linkTenThuoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (this.cboSick.Visible)
            {
                this.cboSick.Visible = false;
                this.txtTenThuoc.Visible = true;
            }
            else
            {
                this.cboSick.Visible = true;
                this.txtTenThuoc.Visible = false;
            }
        }

        public void loadDataGrid()
        {
            DataGridTableStyle table = new DataGridTableStyle();
            table.MappingName = "ImportMedicineList";
            table.AlternatingBackColor = Color.AliceBlue;
            table.HeaderForeColor = Color.Maroon;
            table.GridLineColor = Color.CornflowerBlue;
            DataGridTextBoxColumn column = new DataGridTextBoxColumn();
            column.MappingName = "STT";
            column.HeaderText = "  STT";
            column.Width = 50;
            table.GridColumnStyles.Add(column);
            column.Alignment = HorizontalAlignment.Center;
            DataGridTextBoxColumn column2 = new DataGridTextBoxColumn();
            column2.MappingName = "Tên Thuốc";
            column2.HeaderText = "           tên Thuốc";
            column2.Width = 180;
            column2.NullText = string.Empty;
            table.GridColumnStyles.Add(column2);
            column2.Alignment = HorizontalAlignment.Center;
            DataGridTextBoxColumn column3 = new DataGridTextBoxColumn();
            column3.MappingName = "SL Nhập";
            column3.HeaderText = "     Số Lượng Nhập";
            column3.Width = 150;
            column3.NullText = string.Empty;
            column3.Alignment = HorizontalAlignment.Center;
            table.GridColumnStyles.Add(column3);
            DataGridTextBoxColumn column4 = new DataGridTextBoxColumn();
            column4.MappingName = "ĐV Tính";
            column4.HeaderText = "    ĐV Tính";
            column4.Width = 100;
            column4.NullText = string.Empty;
            column4.Alignment = HorizontalAlignment.Center;
            table.GridColumnStyles.Add(column4);
            DataGridTextBoxColumn column5 = new DataGridTextBoxColumn();
            column5.MappingName = "Đổi Đơn Vị";
            column5.HeaderText = "  Số Lượng/ 1 ĐV Chuẩn";
            column5.Width = 180;
            column5.NullText = string.Empty;
            column5.Alignment = HorizontalAlignment.Center;
            table.GridColumnStyles.Add(column5);
            DataGridTextBoxColumn column6 = new DataGridTextBoxColumn();
            column6.MappingName = "ĐV Chuẩn";
            column6.HeaderText = "  ĐV Chuẩn";
            column6.Width = 100;
            column6.NullText = string.Empty;
            column6.Alignment = HorizontalAlignment.Center;
            table.GridColumnStyles.Add(column6);
            DataGridTextBoxColumn column7 = new DataGridTextBoxColumn();
            column7.MappingName = "Cũ/Mới";
            column7.HeaderText = "";
            column7.Width = 0;
            column7.NullText = string.Empty;
            table.GridColumnStyles.Add(column7);
            DataGridTextBoxColumn column8 = new DataGridTextBoxColumn();
            column8.MappingName = "ISN";
            column8.HeaderText = "";
            column8.Width = 0;
            column8.NullText = string.Empty;
            table.GridColumnStyles.Add(column8);
            this.dataGrid1.TableStyles.Add(table);
            table.AllowSorting = false;
        }

        public void loadDataSet()
        {
            this.ds.Tables.Clear();
            this.ds.Tables.Add(this.dt);
            this.dataGrid1.TableStyles.Clear();
            this.dataGrid1.DataSource = this.ds;
            this.dataGrid1.SetDataBinding(this.ds, "ImportMedicineList");
            this.loadDataGrid();
        }

        private void txtAmount_Leave(object sender, EventArgs e)
        {
            if (this.txtDViChuan.Text != "")
            {
                this.txtDViChuan_Leave(sender, e);
            }
        }

        private void txtDonVi_TextChanged(object sender, EventArgs e)
        {
            if (this.txtDonVi.Text != "")
            {
                int num = this.cboMucChuan.FindString(this.txtDonVi.Text);
                if ((num >= 1) && (num <= 4))
                {
                    this.cboMucChuan.SelectedIndex = num;
                    this.txtDViChuan.Text = "1";
                }
            }
        }

        private void txtDViChuan_Leave(object sender, EventArgs e)
        {
            if (this.txtAmount.Text == "")
            {
                MessageBox.Show("Vui lòng nhập số lượng", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else if (this.txtDViChuan.Text == "")
            {
                MessageBox.Show("Vui lòng nhập số lượng / đơn vị chuẩn ", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else if (!this.IsNumber(this.txtAmount.Text))
            {
                MessageBox.Show("Vui lòng nhập kiểu số cho số lượng thuốc nhập", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                this.txtAmount.Text = "0";
                this.txtAmount.Focus();
            }
            else if (!this.IsNumber(this.txtDViChuan.Text))
            {
                MessageBox.Show("Vui lòng nhập kiểu số cho số lượng / 1 đơn vị chuẩn", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                this.txtDViChuan.Text = "1";
                this.txtDViChuan.Focus();
            }
            //edit here by thao vi nếu nhập thuốc bằng 0 => có nghĩa là muốn cập nhật lại cách sử dụng thuốc
            //else if (Convert.ToInt64(this.txtAmount.Text) == 0L)
            //{
            //    MessageBox.Show("Vui lòng nhập số lượng thuốc nhập lớn hơn 0", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            //    this.txtAmount.Text = "";
            //    this.txtAmount.Focus();
            //}
            else if (Convert.ToInt64(this.txtDViChuan.Text) == 0L)
            {
                MessageBox.Show("Vui lòng nhập số lượng / 1 đơn vị chuẩn lớn hơn 0", "Lỗi Nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                this.txtDViChuan.Text = "1";
                this.txtDViChuan.Focus();
            }
            else
            {
                this.txtSumAmount.Text = (Convert.ToInt64(this.txtAmount.Text) * Convert.ToInt64(this.txtDViChuan.Text)).ToString();
            }
        }

        private void txtNewMedicine_TextChanged(object sender, EventArgs e)
        {
            if (this.txtNewMedicine.Text != "")
            {
                this.cboSick.SelectedIndex = 0;
                this.cboSick.Enabled = false;
            }
            else
            {
                this.cboSick.Enabled = true;
            }
        }

        private void txtSumAmount_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void txtTenThuoc_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                int num = this.cboSick.FindString(this.txtTenThuoc.Text);
                if (num >= 0)
                {
                    this.cboSick.Visible = true;
                    this.txtTenThuoc.Visible = false;
                    this.cboSick.SelectedIndex = num;
                }
                else
                {
                    MessageBox.Show("Tên thuốc này không tồn tại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
            }
        }

        private void txtTenThuoc_Leave(object sender, EventArgs e)
        {
            int num = this.cboSick.FindString(this.txtTenThuoc.Text);
            if (num >= 0)
            {
                this.cboSick.Visible = true;
                this.txtTenThuoc.Visible = false;
                this.cboSick.SelectedIndex = num;
            }
            else
            {
                MessageBox.Show("Tên thuốc này không tồn tại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
        }

        private void tbLanUong_Leave(object sender, EventArgs e)
        {
            if (this.IsNumber(this.tbLanUong.Text))
            {
                if (Convert.ToInt64(this.tbLanUong.Text) == 0L)
                {
                    MessageBox.Show("Vui lòng nhập số liều Dùng cho một lần lớn hơn 0", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    this.tbLanUong.Text = "";
                }
            }
            else
            {
                ArrayList list = new ArrayList();
                foreach (string str in this.tbLanUong.Text.Trim().Split(new char[] { '/' }))
                {
                    list.Add(str);
                }
                if (list.Count >= 3)
                {
                    MessageBox.Show("Chỉ nên nhập 1 số có dạng A/B", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    this.tbLanUong.Text = "";
                    this.tbLanUong.Focus();
                }
                else
                {
                    try
                    {
                        long num2 = Convert.ToInt64(list[0].ToString());
                        long num3 = Convert.ToInt64(list[1].ToString());
                    }
                    catch
                    {
                        MessageBox.Show("Nhập kiểu số cho số liều sử dụng trong một lần", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                        this.tbLanUong.Text = "";
                    }
                }
            }
        }

        private void tbNgayUong_Leave(object sender, EventArgs e)
        {
            if (this.tbNgayUong.Text != "")
            {
                this.textInComboCuUong(this.tbNgayUong.Text);
            }
        }

        public void textInComboCuUong(string ngay)
        {
            if (!this.IsNumber(ngay))
            {
                return;
            }
            ArrayList list = new ArrayList();
            list.Add("sáng");
            list.Add("trưa");
            list.Add("chiều");
            list.Add("tối");
            ArrayList list2 = new ArrayList();
            int num = Convert.ToInt32(ngay);
            if (num >= 5)
            {
                for (int k = 0; k < list.Count; k++)
                {
                    list2.Add(list[k].ToString());
                }
                for (int m = 0; m < list.Count; m++)
                {
                    if (m == (list.Count - 1))
                    {
                        break;
                    }
                    list2.Add(list[m].ToString() + "," + list[m + 1].ToString());
                    list2.Add(list[m].ToString() + "," + list[m + 2].ToString());
                    if (m == (list.Count - 3))
                    {
                        break;
                    }
                    list2.Add(list[m].ToString() + "," + list[m + 3].ToString());
                }
            }
            else
            {
                switch (num)
                {
                    case 1:
                        for (int n = 0; n < list.Count; n++)
                        {
                            list2.Add(list[n].ToString());
                        }
                        goto Label_0579;

                    case 2:
                        for (int num3 = 0; num3 < list.Count; num3++)
                        {
                            if (num3 == (list.Count - 1))
                            {
                                break;
                            }
                            list2.Add(list[num3].ToString() + "," + list[num3 + 1].ToString());
                            list2.Add(list[num3].ToString() + "," + list[num3 + 2].ToString());
                            if (num3 == (list.Count - 3))
                            {
                                break;
                            }
                            list2.Add(list[num3].ToString() + "," + list[num3 + 3].ToString());
                        }
                        break;

                    case 3:
                        for (int num4 = 0; num4 < list.Count; num4++)
                        {
                            if (num4 == (list.Count - 2))
                            {
                                break;
                            }
                            list2.Add(list[num4].ToString() + "," + list[num4 + 1].ToString() + "," + list[num4 + 2].ToString());
                            if (num4 == (list.Count - 3))
                            {
                                break;
                            }
                            list2.Add(list[num4].ToString() + "," + list[num4 + 1].ToString() + "," + list[num4 + 3].ToString());
                            list2.Add(list[num4].ToString() + "," + list[num4 + 2].ToString() + "," + list[num4 + 3].ToString());
                        }
                        goto Label_0579;

                    case 4:
                        list2.Add("sáng,trưa,chiều,tối");
                        goto Label_0579;

                    default:
                        goto Label_0579;
                }
                list2.Add(list[2].ToString() + "," + list[3].ToString());
                goto Label_0579;
            }
            list2.Add(list[2].ToString() + "," + list[3].ToString());
            for (int i = 0; i < list.Count; i++)
            {
                if (i == (list.Count - 2))
                {
                    break;
                }
                list2.Add(list[i].ToString() + "," + list[i + 1].ToString() + "," + list[i + 2].ToString());
                if (i == (list.Count - 3))
                {
                    break;
                }
                list2.Add(list[i].ToString() + "," + list[i + 1].ToString() + "," + list[i + 3].ToString());
                list2.Add(list[i].ToString() + "," + list[i + 2].ToString() + "," + list[i + 3].ToString());
            }
            list2.Add("sáng,trưa,chiều,tối");
        Label_0579:
            this.cboCuUong.Items.Clear();
            for (int j = 0; j < list2.Count; j++)
            {
                this.cboCuUong.Items.Add(list2[j].ToString());
            }
        }

        private void cboCachSD_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.cboCachSD.SelectedItem.ToString() != "-Chọn-")
            {
                this.lbCuUong.Text = "Cử " + this.cboCachSD.SelectedItem.ToString() + ":";
                this.lbLanUong.Text = "Lần " + this.cboCachSD.SelectedItem.ToString() + ":";
                this.lbNgayUong.Text = "Ngày " + this.cboCachSD.SelectedItem.ToString() + ":";
            }
        }
    }
}